package com.ruoyi.biz.mapper;

import com.ruoyi.biz.domain.WarnedNoticeRecord;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.Date;
import java.util.List;

/**
 * 【请填写功能名称】Mapper接口
 *
 * @author ruoyi
 * @date 2020-12-28
 */
public interface WarnedNoticeRecordMapper
{
    /**
     * 查询【请填写功能名称】
     *
     * @param warnNoticeId 【请填写功能名称】ID
     * @return 【请填写功能名称】
     */
    public WarnedNoticeRecord selectWarnedNoticeRecordById(Integer warnNoticeId);

    /**
     * 查询【请填写功能名称】列表
     *
     * @param warnedNoticeRecord 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<WarnedNoticeRecord> selectWarnedNoticeRecordList(WarnedNoticeRecord warnedNoticeRecord);

    /**
     * 新增【请填写功能名称】
     *
     * @param warnedNoticeRecord 【请填写功能名称】
     * @return 结果
     */
    public int insertWarnedNoticeRecord(WarnedNoticeRecord warnedNoticeRecord);

    /**
     * 修改【请填写功能名称】
     *
     * @param warnedNoticeRecord 【请填写功能名称】
     * @return 结果
     */
    public int updateWarnedNoticeRecord(WarnedNoticeRecord warnedNoticeRecord);

    /**
     * 删除【请填写功能名称】
     *
     * @param warnNoticeId 【请填写功能名称】ID
     * @return 结果
     */
    public int deleteWarnedNoticeRecordById(Integer warnNoticeId);

    /**
     * 批量删除【请填写功能名称】
     *
     * @param warnNoticeIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteWarnedNoticeRecordByIds(Integer[] warnNoticeIds);

    /**
     * 查询今天的该通知最久的记录
     * @param date
     * @param warnedId
     * @return
     */
    @Select("select a.notice_time-b.notice_time from (select * from warned_notice_record where datediff ( notice_time , #{date}) = 0 and warned_record_id = #{warnedId} order by  notice_time DESC limit 1) as a,(select * from warned_notice_record where datediff ( notice_time , #{date}) = 0 and warned_record_id = #{warnedId} order by  notice_time asc limit 1) as b;")
    Long selectNoticeTime(@Param("date") Date date,@Param("warnedId") Long warnedId);
}
